In three-dimensional modeling and animation, characters typically have a skeletal structure in which elements may be rotated or rolled. Such characters may include humanoid, animal or imaginary characters. These skeletal structures include, but are not limited to, spines, necks and other appendages that rotate, such as arms, legs or tails. In these structures, it is often desirable to have the rotation or roll distributed or divided over the elements to realistically simulate motion and poses. As a result, roll division presents a fundamental problem in three dimensional character setup and animation for almost all characters.
These skeletal structures typically are approximated using a set of objects that are manipulated using inverse or forward kinematics. Such a structure typically is created using a representation of a skeleton that includes a hierarchy of objects. In such a hierarchy of objects, a manipulation applied to an element is applied to other elements that are below it in the hierarchy. For example, an animation on a spine typically involves manipulating individual vertebra, and any rotation of one vertebra automatically is applied to other vertebrae that are connected to it.
For example, referring to FIGS. 1A–1C, a skeleton with a spine 100 defined by a hierarchy of vertebra 102 is shown. In particular, FIG. 1A shows a character with a straight spine. In this example, the hierarchy of vertebra 102 is defined upwards, meaning a change in one vertebra causes a change in the vertebra above it. If ten degrees of rotation is added to the bottom vertebra 104, as shown in FIG. 1B, then all the vertebra above it then have the same rotation and are at a ten degree angle. If another ten degrees of rotation is added to the fourth vertebra 106, as shown in FIG. 1C, then all the vertebra above the fourth vertebra have this additional ten degrees of rotation and are now at a twenty degree angle.
If the animator decided to move the bottom vertebra 104 to a certain orientation and leave the end of the spine 108 where it is in FIG. 1C, then the animator would have to counter-animate the end of the spine 108. That is, the animator would first place the bottom vertebra 104 at a desired position, and then would reposition the other spine elements above until the end of the spine 108 was in the same position as in FIG. 1C. This process of counter-animation wastes a significant amount of time while animating or posing a character, especially when fine adjustments are repeatedly made to the lower body, which then entails similar fine counter-animation to the upper body.
A parallel problem, called pinching, may occur when an appendage, such as an arm, is rotated. An example of pinching is shown in FIGS. 2A–2E, which illustrates rotation of a cube. As the corner 202 and face 200 are rotated from the orientation in FIGS. 2A to the orientation shown in FIG. 2E, the face 204, for example, is pinched inwards. This same kind of pinching occurs in three-dimensionally animated characters that have rotating parts, such as arms and legs, which often requires corrective steps to be taken to modify the form or shape of the rotating part.